package com.android.yinghebike.bean;

import com.blankj.utilcode.util.ConvertUtils;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;

//封装的数据对象，用来解析蓝牙传过来的数据
public class BleDataInfo {

    public byte index;   //索引号
    public byte data;    //对应的值

    public BleDataInfo(byte index, byte data) {
        this.index = index;
        this.data = data;
    }

    //根据索引获取对应数据对象，并将数据转换成int返回。 可以传多个索引，有的数据好几个字节
    public static int getDataByIndex(List<BleDataInfo> dataInfoList, byte[] indexs) {
        List<Byte> dataList = new ArrayList<>();
        for (BleDataInfo bleDataInfo : dataInfoList) {
            for (int i = 0; i < indexs.length; i++) {
                if (bleDataInfo.index == indexs[i]) {
                    dataList.add(bleDataInfo.data);
                }
            }
        }
        if (dataList.size() == 0) return 0;   //如果没有数据，就返回0
        ByteBuffer byteBuffer_final = ByteBuffer.allocate(dataList.size());
        for (Byte data : dataList) {
            byteBuffer_final.put(data);
        }
        byte[] bytes_final = byteBuffer_final.array();
        return ConvertUtils.hexString2Int(ConvertUtils.bytes2HexString(bytes_final));
    }

}
